Modulation is the process of encoding data onto a signal for transmission. Examples of modulation schemes include binary phased shift keying (BPSK), quadrature phase shift keying (QPSK), and quadrature amplitude modulation (QAM). Modulation schemes differ from one another according to the amount of data carried by any one symbol. Higher-order modulation schemes carry more data per symbol. For example, a 16 QAM symbol carries 4 bits of data per symbol, while a BPSK symbol carries only two bits of data per symbol. Thus, the higher-order modulation scheme, in this example 16 QAM, is more efficient in terms of the amount of data transferred over a wireless link in a fixed period of time. Thus, within a fixed period of time, more data can be transferred over the link using a higher-order modulation scheme than a lower-order modulation scheme if channel conditions are good. But transmissions using lower-order modulation schemes are more robust and result in fewer errors when channel conditions are poor.
Error correction codes enable the detection and correction of errors occurring during a wireless transmission. Examples of error correction codes that introduce elegant redundancy to the link, include convolution codes, convolution turbo codes, Reed-Solomon, Hamming, parity checks, repetition codes, and cyclic redundancy checks. Error correction codes are used to improve the performance of the wireless link. The code rate is the length of the original, unencoded information divided by the length of the coded information (e.g., 8 bits/16 bits or a ½-rate code). Increasing the amount of encoding (e.g., increasing the number of encoded bits per unencoded bit) increases robustness of the link. However, the redundancy providing robustness comes at the expense of efficiency since the use of error correction codes always decreases the efficiency of the wireless transmission given a fixed transmission time. Returning to the previous example, the ½-rate code decreases the efficiency by a factor of 2 since the ½-rate code uses 16 bits of coded information, while the unencoded information only uses 8 bits. Thus, within a fixed period of time, more data can be transferred, if channel conditions are good, over the link using a lower amount of error correction than a higher amount of error correction. But transmissions using a higher amount of error correction are more robust and result in fewer errors if channel conditions are poor.